// index.js
const app = getApp();
const key = app.globalData.key;
const env = app.globalData.env;
const service = app.globalData.service;
const maxDistance = app.globalData.maxDistance;
const contextPath = app.globalData.contextPath;
Page({
    data: {
        latitude: 0,
        longitude: 0,
        phoneIconUrl: '../../icons/dianhua.png',
        locationIconUrl: '../../icons/weizhi.png',
        timeIconUrl: '../../icons/shijian.png',
        storeList: []
    },
    onLoad: async function () {
        // 页面加载时获取初始数据  
        await this.loadCurrentLocation();
    },
    async loadCurrentLocation() {
        wx.getLocation({
            type: 'wgs84',
            success: (res) => {
                const latitude = res.latitude
                const longitude = res.longitude
                this.setData({
                    latitude,
                    longitude
                }, async () => {
                    // 数据已经更新，现在可以安全地使用 latitude 和 longitude 了
                    this.fetchStoreList();
                })
            },
            fail(res) {
                console.log(res)
            }
        })
    },

    fetchStoreList: async function () {
        const latitude = this.data.latitude;
        const longitude = this.data.longitude;

        // 构造请求 URL（根据您的 API 接口进行调整）  
        const url = `${contextPath}/store?longitude=${longitude}&latitude=${latitude}&distance=${maxDistance}`; // 替换为您的 API 路径  

        try {
            const res = await wx.cloud.callContainer({
                config: {
                    env: env, // 微信云托管的环境 ID，根据实际情况填写
                },
                path: url, // 业务自定义路径和参数
                method: 'GET', // 请求方法
                header: {
                    'X-WX-SERVICE': service, // 你的云托管服务名称
                    // 可以添加其他需要的 header
                },
                // 可以添加请求的 body，GET 请求通常不需要
            });
            console.log('获取到的数据结果: ', res); // 处理获取到的数据
            // 假设服务器返回的是一个数组，其中包含了美食列表  
            if (res.data && Array.isArray(res.data)) {
                // 在 storeList 中的每个条目中，将 distance 字段转化为 km 单位并保留两位小数
                const processedData = res.data.map(item => {
                    item.distance = (item.distance / 1000).toFixed(2);
                    return item;
                });

                this.setData({
                    storeList: processedData
                })
            } else {
                // 处理错误或无效数据的情况  
                wx.showToast({
                    title: '无法获取商场列表',
                    icon: 'none',
                    duration: 2000
                });
            }
        } catch (error) {
            console.error('请求失败:', error);
            wx.showToast({
                title: '网络错误',
                icon: 'none',
                duration: 2000
            });
            // 设置一个空数组或其他默认状态  
            this.setData({
                storeList: []
            });
        }
    },
    // 拨打电话
    callPhone: function (e) {
        var phoneNumber = e.currentTarget.dataset.phoneNumber;
        wx.makePhoneCall({
            phoneNumber: phoneNumber,
            success: function () {
                console.log('拨打电话成功');
            },
        })
    },
    // 前往导航
    navigateLocation(e) {
        const {
            latitude
        } = e.currentTarget.dataset
        const {
            longitude
        } = e.currentTarget.dataset
        wx.openLocation({
            latitude: Number(latitude),
            longitude: Number(longitude)
        })
    },
});